#include #define LED_PIN 3 #define NUM_LEDS 30 #define BRIGHTNESS 255 #define LED_TYPE WS2811 #define COLOR_ORDER RGB CRGB leds[NUM_LEDS]; // Pins definieren const int trigPin = 9; // Trig-Pin des Ultraschallsensors const int echoPin = 10; // Echo-Pin des Ultraschallsensors // Variablen für die Entfernungsmessung long duration; int distance; void setup() { // Pins initialisieren pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // Serielle Kommunikation starten (optional, für Debugging) Serial.begin(9600); FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(BRIGHTNESS); // LEDs ausschalten (initialisieren) fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); } void loop() { // Ultraschallimpuls senden digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Echo-Zeit messen duration = pulseIn(echoPin, HIGH); // Entfernung in cm berechnen distance = duration * 0.034 / 2; // Debugging: Entfernung ausgeben (optional) Serial.println("Entfernung: " + String(distance) + " cm"); if (distance > 200) { // Alle LEDs blinken langsam in Rot fill_solid(leds, NUM_LEDS, CRGB::Red); FastLED.show(); delay(500); // Langsames Blinken fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); delay(500); } else if (distance <= 200 && distance > 100) { // Alle LEDs blinken schneller in Rot fill_solid(leds, NUM_LEDS, CRGB::Red); FastLED.show(); delay(100); // Schnelleres Blinken fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); delay(100); } else { // LEDs leuchten nacheinander schnell in Rot for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB::Red; // LED auf Rot setzen FastLED.show(); delay(50); // Kurze Verzögerung pro LED leds[i] = CRGB::Black; // LED ausschalten } } }